package com.imooc.order.utils;

import java.util.Random;

/**
 * @Author: JLL
 * @Date: 2019/5/4 17:33
 */
public class KeyUtil {

    /**
     * 生成唯一的主键
     * 格式：时间+随机数
     *
     * 加synchronized是为了 生成订单id 不会重复
     *
     * 这里的生成唯一主键的方式只是简单实现，只是把重复的概率降的低一些，其实并不能做到100%的唯一
     * 如果是公司企业级别生成唯一的主键怎么做呢？
     * 应该是去专门写一个项目，这个项目供各个服务方去调用。具体做法，自行百度
     */
    public static synchronized String genUniqueKey(){
        Random random = new Random();
        /**
         * int n =random.nextInt(62);//随机生成一个整数，这个整数的范围就是[0,61）  注意右边是不包含
         *
         * 直接用random.nextInt(1000000) 也可以
         * 但是这里用的方法是：随机生成一个数，再加上六位。目的是为了让生成数字的长度是一样的
         */
        //生成一个六位随机数（永遠都是固定的六位）
        Integer number = random.nextInt(900000) + 100000;
        return System.currentTimeMillis() + String.valueOf(number);
    }


}
